#ifndef ACTIONS_H
#   define ACTIONS_H


#include "def_etat_bataille.h"
#include "etat_partie.h"
#include "resume_saisie.h"
#include "base_donnees.h"



/**
 * \fn void faire_tirer_joueur(struct carte_zone* carte,
                               struct etat_bataille* bataille,
                               const struct etat_partie* partie,
                               const struct resume_saisie* saisie,
                               const struct base_donnees* donnees)
 * \brief Permet au joueur de tirer s'il le veut et le peut
 *
 * \param[in,out] carte L'adresse de la carte de la zone actuelle
 * \param[in,out] bataille L'adresse de l'etat de la bataille
 * \param[in] partie L'adresse de l'etat de la partie
 * \param[in] saisie L'adresse du resume des touches enfoncees
 * \param[in] donnees L'adresse d'une base_donnees correctement remplie
 */
void faire_tirer_joueur(struct carte_zone* carte,
                        struct etat_bataille* bataille,
                        const struct etat_partie* partie,
                        const struct resume_saisie* saisie,
                        const struct base_donnees* donnees);


/**
 * \fn void faire_tirer_ennemis(struct carte_zone* carte,
                                struct etat_bataille* bataille,
                                const struct base_donnees* donnees)
 * \brief Permet aux ennemis d'attaquer
 *
 * \param[in,out] carte L'adresse de la carte de la zone actuelle
 * \param[in,out] bataille L'adresse de l'etat de la bataille
 * \param[in] donnees L'adresse d'une base_donnees correctement remplie
 */
void faire_tirer_ennemis(struct carte_zone* carte,
                         struct etat_bataille* bataille,
                         const struct base_donnees* donnees);



/**
 * \fn void utiliser_objet(struct etat_bataille* bataille,
                           struct etat_partie* partie,
                           const struct resume_saisie* saisie,
                           const struct base_donnees* donnees)
 * \brief Permet au joueur d'utiliser un objet utilisable lors d'une bataille
 *
 * \param[in,out] bataille L'adresse de l'etat de la bataille
 * \param[in,out] partie L'adresse de l'etat de la partie
 * \param[in] saisie L'adresse du resume des touches enfoncees
 * \param[in] donnees L'adresse d'une base de donnees correctement remplie
 */
void utiliser_objet(struct etat_bataille* bataille,
                    struct etat_partie* partie,
                    const struct resume_saisie* saisie,
                    const struct base_donnees* donnees);


#endif /* ACTIONS_H */
